package com.alibaba.citrus.cr.order.open.api.facade.model;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @description:
 * @author: yuhw
 * @date: 2024年01月09日 16:20
 **/
@Data
public class TransferOrder implements Serializable {
    /**
     * 调拨单号
     */
    private String transferOrderCode;

    private String outAllocateOrderId;

    private String businessType;

    private String fromSys;

    private String priority;

    private String logicShipWarehouseCode;

    private String logicReceiveWarehouseCode;
    /** 物理发货仓 **/
    private String shipWarehouseId;

    private String receiveWarehouseId;

    private String shipAreaId;

    private String receiveAreaId;
    /** 货场仓 **/
    private String transferWarehouseId;

    private String productGroupCode;

    private String salesOrganizationCode;

    private String creator;
    /**
     * 期望交货时间
     */
    private String expectedDeliveryTime;
    /**
     * 配送方式编码
     */
    private String shippingMethodCode;
    /**
     * 备注
     */
    private String remark;
    /**
     * 扩展字段
     */
    private String feature;

    /**
     * 发运方式
     */
    private String transportationMethod;

    private Boolean returnOrder;

    private Integer shipMethod;

    private String productGroup;

    private Date expectedDeliveryDate;
    /**
     * 业务扩展信息
     */
    private Map<String,String> bizFeatures;

    /**
     * 调拨单类型（1、计划调拨 5、仓间调拨 6、货场提货）
     */
    private String transferOrderType;

    /**
     * 关联的调拨单号（如果当前为货场提货单，对应的即为原始调拨单的单号）
     */
    private String relatedAllocateOrderCode;

    /**
     * 预报单号
     */
    private String allocateApplyOrderCode;

    /**
     * 预报单id
     */
    private String allocateApplyOrderId;

    /**
     * 履约类型
     */
    private String fulfillmentTypeCode;
    /**
     * 调拨单明细
     */
    private List<TransferSubOrder> detailList;

    /**
     * 提报组织（销售组织id）
     */
    private String applyOrgId;
}
